package com.nondo.dean.auth.service;

import com.nondo.dean.auth.domain.Authority;
import com.nondo.dean.auth.domain.RoleAuthorityKey;
import com.nondo.dean.common.web.Page;
import com.nondo.dean.common.web.Query;

import java.util.List;

public interface RoleAuthorityService {

    /**
     * 根据角色编号查询出权限集合
     *
     * @param roleId 角色编号
     * @return 权限集合
     */
    List<RoleAuthorityKey> findByRoleId(Long roleId);

    /**
     * 保存角色权限对象
     *
     * @param key 角色权限对象
     */
    void saveRoleAuthority(RoleAuthorityKey key);

    /**
     * 保存角色权限对象
     *
     * @param roleId      角色编号
     * @param authorityId 权限编号
     */
    void saveRoleAuthority(Long roleId, Long authorityId);

    /**
     * 根据角色编号和权限编号删除对应关系
     *
     * @param roleId      角色
     * @param authorityId 权限
     */
    void deleteRoleAuthority(Long roleId, Long authorityId);

    /**
     * 删除角色权限关系
     * @param roleId 角色ID
     */
    void deleteRoleAuthority(Long roleId);

    /**
     * 删除角色权限关联关系
     *
     * @param authorityId 权限ID
     */
    void deleteRoleAuthorityByAuthorityId(Long authorityId);

    /**
     * 根据角色编号和权限编号查询权限对象
     *
     * @param roleId      角色编号
     * @param authorityId 权限编号
     * @return 角色权限对象
     */
    RoleAuthorityKey findByRoleIdAndAuthorityId(Long roleId, Long authorityId);


}
